토큰화(Tokenization)는 텍스트를 AI 모델이 처리할 수 있는 의미 있는
작은 단위인 토큰(token)으로 나누는 과정입니다. 마치 요리를 하기 위해 재료를 잘게 써는 것과 같습니다.
토큰화의 진짜 목표는 단순히 텍스트를 나누는 것에서 그치지 않습니다.
최종 목표는 텍스트를 모델이 이해할 수 있는 숫자 시퀀스로 변환하는 것입니다.
텍스트를 토큰으로 나눈 뒤 중복을 제거하여
모든 고유한 토큰의 집합인 단어장을 만듭니다.
단어장의 각 토큰에 고유한 번호(정수 ID)를 부여합니다.
이 숫자들을 모델이 학습할 수 있는 고차원의 벡터(dense vector)로 변환하는 마지막 단계입니다.
텍스트를 가장 기본적인 단위인 글자(character) 하나하나로 모두 분절하는 방식입니다.
띄어쓰기나 구두점 등 상식적인 구분자를 기준으로 텍스트를 단어(word) 단위로 분절하는 방식입니다.
단어를 통계적으로 의미 있는 더 작은 단위(subword)로 분절하여 단어와 글자의 장점을 모두 취하는 방식입니다.
단어를 언어의 문법적 최소 의미 단위인 형태소(morpheme)로 분절하는 방식입니다.
BERT, GPT와 같은 현대적인 딥러닝 모델은 이미 대규모 데이터로 학습된 자체 서브워드 토크나이저를 함께 제공합니다.
대부분의 경우, 우리는 이 모델에 맞춰진 토크나이저를 그대로 사용하는 것이 베스트 프랙티스입니다.
모델이 학습한 방식 그대로 텍스트를 이해시켜야 최고의 성능을 낼 수 있기 때문입니다.
'아이폰'과 '아이폰으로'를 같은 단어로 인식해야 하는 검색 엔진이나, 법률/의료 문서처럼 문법적 분석이 중요한 도메인에서는 여전히 형태소 분석기가 매우 강력한 성능을 보입니다. 이 경우, 형태소 분석기로 텍스트를 먼저 처리한 뒤 다음 단계로 넘기기도 합니다.
TF-IDF나 Word2Vec 같은 전통적인 통계 기반 모델의 성능을 빠르게 확인하기 위한 기준선을 만들 때
간단하고 직관적인 단어 토큰화를 사용하곤 합니다.